package com.bgs.travelapp.scenic.service;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.scenic.entity.ScenicEntity;
import com.bgs.travelapp.ticket.entity.TicketEntity;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartRequest;
import org.yaml.snakeyaml.nodes.ScalarNode;

import java.util.List;
import java.util.Set;

public interface ScenicService {
    /**
     * 分页全查景区景点信息（后端管理展示景点信息）
     * @param pageRequest
     * @return
     */
    PageResult getScenicAll(PageRequest pageRequest);

    /**
     * 根据城市父级id查询
     * @param pageRequest
     * @return
     */
    PageResult getScenicAllByCityId(PageRequest pageRequest, Integer cityId);

    /**
     * 新增景区景点信息（后端管理）
     * @param file
     * @param scenicEntity
     * @return
     */
    Integer saveScenic(MultipartFile[] file,ScenicEntity scenicEntity);

    /**
     *根据id修改景区景点信息（后端管理）
     * @param scenicEntity
     * @return
     */
    Integer editScenicById(MultipartFile[] file,ScenicEntity scenicEntity);

    /**
     * 根据id删除景区景点信息（后端管理）
     * @param id
     * @return
     */
    Integer deleteScenicById(Integer id);

    /**
     * 根据景区名称模糊查询（后端管理）
     * @param pageRequest
     * @param scenicName
     * @return
     */
    PageResult findScenicByName(PageRequest pageRequest, String scenicName);

    /**
     *根据城市id查询景区信息（前端管理）
     * @param cityId
     * @return
     */
    List<ScenicEntity> scenicAllByCirtId(Integer cityId);

    /**
     * 后端新增校验景区名称是否重复
     * @param scenicName
     * @return
     */
    List<ScenicEntity> scenicAllByScenicName(String scenicName);


    /**
     * 地图筛选根据城市获取景区信息 显示在地图上景区信息
     * (lzy 2022-7-15 15点20分)
     * @param cityId
     * @return
     */
    List<ScenicEntity> getScenicByCityId(Integer cityId);

    /**
     * 根据景区id查询景区详细信息
     * @param id
     * @return
     */
    List<ScenicEntity> scenicDetailsAllById(Integer id);

    /**
     * 根据id查询景区第一张图片
     * @param id
     * @return
     */
    List<ScenicEntity> getScenicImageFirstById(Integer id);

    /**
     * 展示旅游足迹根据游玩景区（前台展示）
     * lzy 2022-8-4 20点23分
     * @param id
     * @return
     */
    Set<ScenicEntity> getScenicListByOrder(Integer id);

    /**
     * 用户收藏景区，该景区收藏数加1 （前端---景区门票收藏）
     * gpd 2022-08-09 17点18分
     * @param scenicId
     * @return
     */
    Integer increaseScenicCollection(Integer scenicId);

    /**
     * 用户取消收藏景区，该景区收藏数减1 （前端---景区门票收藏）
     * gpd 2022-08-09 17点18分
     * @param scenicId
     * @return
     */
    Integer deleteScenicCollection(Integer scenicId);

    /**
     * 查询景区用户收藏数
     * gpd 2022-08-09 19点26分
     * @param scenicId
     * @return
     */
    List<ScenicEntity> getScenicCollection(Integer scenicId);

    /**
<<<<<<< Updated upstream
     * 根据景区名称模糊查景区名称
     * hbx 2022年8月24日09:02:43
     * @param scenicName
     * @return
     */
    List<ScenicEntity> getScenicNameByScenicName(String scenicName);
     /**
     * 查询景区票价 （后端订单管理，新增订单）
     * fys 2022-8-17 10：33
     * @param Id
     * @return
     */
    List<ScenicEntity> getTicketPrice(Integer Id);
}
